//
//  MessageDataBaseModel.h
//  ExcellentHome
//
//  Created by 揭婧雯 on 16/8/3.
//  Copyright © 2016年 陈区. All rights reserved.
//

#import "MessageModel.h"
#import <Foundation/Foundation.h>

@interface MessageDataBaseModel : NSObject

/**
 *  单例统一管理Message涉及数据库操作
 */
+ (instancetype)sharedDataBaseModel;

/**
 *  保存消息到数据库
 *
 *  @param dict 消息字典
 *  @return 保存结果,只有插入失败返回NO，其他情况返回Yes
 */
- (BOOL)saveMessageWithDictionary:(NSDictionary*)dict;

/**
 *  读取消息中心列表要显示的消息
 *
 *  @return 查询结果
 */
- (NSArray*)getMessageRootVCListData;

/**
 *  获取指定groupId的消息 时间降序排列，最新的在最前面
 *
 *  @param groupId 查询参数
 *
 *  @return 查询结果数组
 */
- (NSArray*)getMessagesDescendingWithGroupId:(NSString*)groupId;

/**
 *  获取指定会话的消息 私聊用 时间升序排列，最老的在最前面
 *
 *  @param groupId 查询参数
 *
 *  @return 查询结果数组
 */
- (NSArray*)getMessageWithGroupId:(NSString*)groupId;

/**
 *  获取每个群组中的未读消息
 *
 *  @param dict  查询条件数组
 *
 *  @return 查询结果数组
 */
- (NSArray*)getGroupMessageWithDictionary:(NSDictionary*)dict;

///**
// *  更新数据库中的消息的是否已读状态
// *
// *  @param modelArray 需要更新的消息模型数组
// */
//- (void)updateMessagesIsReadInDataBase:(NSArray*)modelArray;
/**
 *  更新数据库中的所有相同groupId的消息为已读状态
 *
 *  @param groupId 需要更新的消息groupId
 */
- (void)updateMessagesToReadInDataBaseWithGroupId:(NSString *)groupId;

/**
 *  保存消息Model到数据库 直接保存 没有过滤
 *
 *  @param model 消息模型
 */
- (BOOL)saveMessageWithModel:(MessageModel*)model;

/**
 *  获取归档文件中保存的消息
 *
 *  @return 消息数组
 */
- (NSArray*)getArchiveMessageArray;

- (BOOL)archiveMessageArray:(NSArray *)array;

@end
